<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/4/24/024
 * Time: 20:12
 */

namespace app\admin\validate;

class MemberAuthValidate extends \think\Validate
{

    const SCENE_ADD = 'add'; //添加权限
    const SCENE_REMOVE = 'remove'; //删除权限
    const SCENE_MODIFY = 'modify'; //修改权限



    protected $rule = [
        'id' => 'require|number',
//        'level' => 'require|between:1,3',
        'pid' => 'require|number',
        'name' => 'require|max:32',
        'controller' => 'require|isCon',
        'action' => 'require|isMeth',
        //'sort' => 'require|between:1,99.9999',
    ];


    protected $message  = [
        'id.require' => '缺少权限id',
        'id.number' => 'id必须为数字',
//        'level.require' => '请选择权限等级',
//        'level' => '权限等级必须在1-3之间',
        'pid.require' => '请选择父级权限',
        'pid.number' => '父级权限id必须为数字',
        'name.require' => '请输入权限名称',
        'name.max' => '权限名称不能超过32位',
//        'controller.require' => '请输入控制器名称',
        //'controller.max' => '控制器名称不能超过32位',
//        'action.require' => '请输入方法名称',
        //'action.max' => '方法名称不能超过32位',
        //'sort.require' => '请输入排序值',
        //'sort.between' => '排序值必须在1-99.9999之间',
    ];

    protected $scene  = [
       self::SCENE_ADD => ['pid',  'name'],
       self::SCENE_MODIFY => ['id', 'pid', 'name'],
       self::SCENE_REMOVE => ['id'],
       'add_con' => ['pid', 'name', 'controller', 'action'],
       'edit_con' => ['id', 'pid', 'name', 'controller', 'action']
    ];
    
    // 长度名在3-32之间，只能包含字母。
    public function isCon($value) {
        $reg = "/^[a-zA-Z_]{3,32}$/";
        return preg_match($reg, $value) ? true : '控制器名长度在3-32之间，只能包含字母';
    }
    
    // 方法名长度在3-20之间，只能包含字母。
    public function isMeth($value) {
        $reg = "/^[a-zA-Z_]{3,32}$/";
        return preg_match($reg, $value) ? true : '方法名长度在3-32之间，只能包含字母';
    }

}